#顺序查找
a=[12,34,2,4,11,76,45,3]

def zx(list,n):
    for i in list:
        if i==n:
            return '找到了'
    return '没找到'
print(zx(a,33))

#二分查找,先用冒泡排序将原序列排序
a1=[12,34,2,4,11,76,45,3]
#定义一个使用冒泡排序的方式对列表排序的函数
def ss(list):
    for i in range(0,len(list)-1):
        for j in range(0,len(list)-i-1):
            if list[j]>list[j+1]:
                list[j],list[j+1]= list[j+1],list[j]
    print(list)
ss(a1)
#递归，二分
a2=[2, 3, 4, 11, 12, 34, 45, 76]
def aa(list,n):
    if list==[]:
        return '没找到'
    mid=len(list)//2
    if list[mid]==n:
        return '找到了'
    elif list[mid]>n:
        return aa(list[0:mid:],n)
    else:
        return aa(list[mid+1::], n)
print(aa(a2,76))
#定义三个变量
a3=[2, 3, 4, 11, 12, 34, 45, 76]
def bb(list,n):
    r=len(list)-1
    l=0
    while l<=r:
        m=(l+r)//2
        if list[m] == n:
            return "找到了"
        elif list[m] > n:  # 往前查找 l不变 r为m前一个
            r = m - 1
        else:
            l = m + 1
    return "没找到"
print(bb(a3,4))